Public key cryptography is a type of cryptography that utilizes two keys to notarize a message with a digital signature or encrypt or decrypt a message. The first key is a public key that is associated with a known party, and the public key is available to the public or otherwise available to relevant parties in a given transaction. The second key is a private key that is kept secret by the known party. These two keys are mathematically linked to each other such that it is relatively easy to calculate the public key from the private key but nearly impossible to calculate the private key from the public key. Therefore, for example, a party that receives a message digitally signed with a private key can verify the digital signature with the related public key. However, it is impractical to mathematically derive the private key from the public key and then “forge” digital signatures on data or messages using the private key. Early examples of public key crypto-systems include RSA and Diffie-Hellman.
While it may be nearly impossible to mathematically calculate a private key from a public key, public key cryptography is still susceptible to non-mathematical security issues, for example, conventional theft of the private key. Thus, the security of public key cryptography hinges on the ability of the party to keep the private key secret and confidential. Physical theft of a notebook computer or other electronic device, hacking into an email account, malware, etc. are all security issues that routinely occur and compromise public key cryptography. Therefore, there is a need to provide better security for the private key in public key cryptography where the theft of a device or the compromise of a device will not allow the thief to possess the private key and compromise the public key cryptography.